﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace HML.Design
{
    /// <summary>
    /// ImageCropper控件设计模式行为
    /// </summary>
    public class ImageCropperDesigner : ControlDesigner
    {
        protected override void OnPaintAdornments(PaintEventArgs pe)
        {
            base.OnPaintAdornments(pe);

            this.DrawTipText(pe.Graphics);
            // 绘制虚线边框
            Control control = this.Control;
            Rectangle clientRectangle = control.ClientRectangle;
            Pen pen = new Pen((double)control.BackColor.GetBrightness() >= 0.5 ? ControlPaint.Dark(control.BackColor) : ControlPaint.Light(control.BackColor));
            pen.DashStyle = DashStyle.Dash;
            --clientRectangle.Width;
            --clientRectangle.Height;
            pe.Graphics.DrawRectangle(pen, clientRectangle);
            pen.Dispose();
        }

        /// <summary>
        /// 绘制提示文本
        /// </summary>
        /// <param name="graphics"></param>
        private void DrawTipText(Graphics graphics)
        {
            ImageCropper control = (ImageCropper)this.Control;
            string text = "图片裁剪";
            SizeF text_size = graphics.MeasureString(text, control.Font);
            SolidBrush text_sb = new SolidBrush((double)control.BackColor.GetBrightness() >= 0.5 ? ControlPaint.Dark(control.BackColor) : ControlPaint.Light(control.BackColor));
            graphics.DrawString(text, control.Font, text_sb, new RectangleF(control.ClientRectangle.X + (control.ClientRectangle.Width - text_size.Width) / 2f, control.ClientRectangle.Y + (control.ClientRectangle.Height - text_size.Height) / 2f, text_size.Width, text_size.Height));
            text_sb.Dispose();
        }

    }

}
